package net.xuele.learn.mytomcat.origin;

import javax.servlet.SingleThreadModel;
import javax.servlet.http.HttpServlet;

/**
 * @Author: yubo
 * @date: 19:31 2020/11/16
 * @Description: 类描述
 *
 *
 * 四大tomcat容器
 *
 * Engine：管理多个虚拟主机，List<Host>
 * Host：虚拟主机，应用是部署在主机里面的（List<Context>），当然虚拟主机可以有多个
 * Context：应用，对应于一个部署在tomcat中的web应用（一般是在webapps目录下），实际上是List<Wrapper>
 * Wrapper：存的是真正的Servlet（List<Servlet>），存储的是同一个类型的Servlet，说明该类型的Servlet有多个实例，
 *          Wrapper中有一个Class类型的字段，名为servletClass
 *
 * 上述四个容器中都有一个pipeline的属性，管道里面有很多的阀门Valve，最后一个阀门是Strand，也就是标准的。
 * 执行流程会在各个Valve中流转
 *                ____________________Engine__________________       ____________________Host____________________
 *               |                                            |     |                                            |
 * Request ----> | Valve1 ---> Valve2 ---> StandardEngineValve|---> | Valve1 ---> Valve2 ---> StandardHostValve  | --->
 *               |____________________________________________|     |____________________________________________|
 *       ____________________Context_________________          ____________________Wrapper_________________
 *      |                                            |        |                                            |
 *      | Valve1 ---> Valve2 --->StandardContextValve| ---->  | Valve1 ---> Valve2 --->StandardWrapperValve| --->Servlet.service()
 *      |____________________________________________|        |____________________________________________|
 *
 *
 * TCP协议的实现是由操作系统来完成的，TCP协议只是定义一种解决方案，而这个解决方案的实现则是由操作系统来完成的；
 */

public class ReadMe extends HttpServlet implements SingleThreadModel {
    /**
     * 实现了SingleThreadModel，则每个请求使用一个Servlet实例，没实现则是所用请求公用一个Servlet实例
     */
}
